home *** CD-ROM | disk | FTP | other *** search
- {
- Below you'll find a program that lists all the directories on the C drive. It
- can be extended very easily but it just wanted to show the basics. (It was
- part of a program that did for dos what the DELTREE command does now. I used
- to work (good old days) with Dos 3.3 which doesn't have a DELTREE command)
-
- {-------------------------------------------------------------------------}
- { programmer : David van Driessche (2:291/1933.13) }
- { language : Borland Pascal v7.0 }
- { purpose : explaining recursive directory listings }
- {-------------------------------------------------------------------------}
-
- {- This code is public domain, feel free to do with it any descent thing -}
-
- program GetDirInfo ;
-
- uses Dos, Crt ;
-
- var
- DirCounter : Integer ;
- Scherm : Text ;
-
- procedure Show( Direct : String ) ;
- var
- {
- Info must be a local parameter of Show. This way the information in the
- SearchRec is saved when a subdirectory is explored using recursion.
- }
- Info : SearchRec ;
- begin
- { We have to search the directory in Direct, build the search-path }
- if ( Direct[Length(Direct)] <> '\' ) THEN Direct := Direct + '\' ;
- FindFirst( Direct+'*.*', AnyFile, Info ) ;
- { As long as we have 'things' in the Direct directory, look at them }
- while ( DosError = 0 ) do
- begin
- if ( (Info.Name <> '.') and (Info.Name <> '..') and
- ( (Info.Attr and Directory) = Directory) )
- then
- begin
- { We found one directory more }
- Inc ( DirCounter ) ;
- { Show what we found }
- Writeln( Direct+Info.Name ) ;
- { We will now search that directory }
- Show( Direct+Info.Name ) ;
- end ;
- { Are there any more things out there ? If so, look at them }
- FindNext( Info ) ;
- end ;
- end ;
-
- begin
- AssignCrt( Scherm ) ;
- ReWrite( Scherm ) ;
- DirCounter := 0 ;
- Show ( 'C:\' ) ;
- Writeln( Scherm ) ;
- Writeln( Scherm, 'Number of directories = ', DirCounter:0 ) ;
- end.
-